package com.niit.scala

import java.util.Scanner

/**
 * Date:2025/3/5
 * Author：Ys
 * Description:
 *
 * 总结：
 * 1.Scala中的Class 和 Java中的Class一样，都是用来创建对象的模板，
 *   但是 Scala中的Class是不能运行主方法的，需要在Object定义运行
 * 2.Scala可以完美调用Java中的所有类库和代码
 * 3.如果多行代码写在一行内，则需要使用分号隔开，最后一条语句不用写分号
 * 4.Scala中的重常量分为两种：1.字面值常量 2.自定义常量
 * 5.var定义变量 val定义常量 格式：var/val 变量名：变量类型 = 值
 * 6.Scala可以根据变量的值来自动推断变量类型
 * 7.插入值表达式可以有效避免大量的字符串拼接
 *  注意：在定义字符串之前添加s,在字符串中，可以使用${}来引用变量或者写表达式
 */
object Base02 {

  def main(args: Array[String]): Unit = {
      println("Hello World")

    //在控制台进行输入，Java new Scanner(System.in)
    // 输入你想对右边人说的话
    println("请输入你想对右边人说的话：")
    //println("我想对你说：" + new Scanner(System.in).nextLine())

    //分号的使用
    println("你好啊");
    println("明天见");
    println("see you Agin")

    //Scala中的字面值（字面上的含义）==> 常量(不可以改变的值称之为常量)
    //Scala中的常量分为两种： 1.字面值常量 2.自定义常量
    println(10)// 10：整型，字面值常量
    println(-35) // -35：整型，字面值常量
    println(10.3) // 10.3：浮点型，字面值常量
    println('a') // a：字符，字面值常量
    println("scala") // scala：字符串，字面值常量
    println(true,false)// true,false：布尔值，字面值常量
    //扩展：print可以打印多个值，每个值之间用逗号间隔
    println(null)// null：空值，字面值常量

    //变量 和 自定义常量
    /*
      变量
       Java: int a = 10;
       Scala : var a:Int = 10  var 是用定义变量
               val a:Int = 10  val 是用定义常量
      var/val 变量名:变量类型 = 值
     */
     val name:String = "Tom"
     var age:Int = 18
     println("姓名：",name,"年龄：",age)
     age = 35
     println("姓名：",name,"年龄：",age)

    //类型推断：Scala中定义变量的时候，如果变量有值，那么数据类型可以省略
    var a = "Tony"
    var b = false
    println(a,b)

    //插入值表达式
    var names = "张三"
    var ages = 23
    var sex = "男"
    //传统方式 字符串拼接
    var res = "姓名："+ name +",年龄："+ages +",性别："+sex
    println(res)
    //插入值表达式的方式
    res = s"姓名：${name},年龄：${ages},性别：${sex}"
    println(res)



  }

}
